package com.example.all4.condition;


import java.util.Map;
import java.util.function.Function;

public interface SCondition {

    boolean isTrue();

    boolean isFalse();

    boolean canReturn();

    void setCanReturn();

    Boolean hasNext();
    //设置 true 下一个节点
    SCondition nextTrue(SCondition trueCondition);
    //设置 false 下一个节点
    SCondition nextFalse(SCondition falseCondition);
    //获得 true的下一个节点
    SCondition getTrueNext();
    //获得 false的下一个节点
    SCondition getFalseNext();
    //绑定判断条件事件
    void bind(Function<Map<String,Object>,Boolean> function);
    //绑定true 事件
    void bindTrueEvent(Function<Map<String,Object>,Map<String,Object>> function);
    //绑定false 事件
    void bindFalseEvent(Function<Map<String,Object>,Map<String,Object>> function);
    //执行判断条件的时间
    void execute();
    //执行true 事件
    SCondition executeTrueEvent();
    //绑定false 事件
    SCondition executeFalseEvent();

}
